package code17_reflect;

public class Test01 {

	public static void main(String[] args) {
		// 通过 类的 Class对象 获取类的加载器
//		ClassLoader cl1 = String.class.getClassLoader();
//		System.out.println(cl1);
//		
//		System.out.println(Test01.class.getClassLoader());
		
		//调用类的 class 属性
		//Class<Test01> c1 = Test01.class;
		Class<?> c1 = Test01.class;
		
		//调用对象的 getClass 方法
		Test01 t1 = new Test01();
		Class<? extends Test01> c2 = t1.getClass();
		//Class<Test01> c3 = (Class<Test01>) t1.getClass();
		Class<?> c4 = t1.getClass();
		
		//调用 Class 类的 forName 静态方法
		String className = "code17_reflect.Test01";// 类的全名
		try {
			Class<?> c5 = Class.forName(className);// 会执行类的加载
			
			System.out.println(c1 == c2);// true
			System.out.println(c1 == c5);// true
			System.out.println(c2 == c5);// true
		} catch (ClassNotFoundException e) {
			e.printStackTrace();
		}
	}
	
}
